//package com.example.demo.controller;
//
//import org.springframework.stereotype.Component;
//
//import javax.annotation.PostConstruct;
//import java.math.BigDecimal;
//import java.math.BigInteger;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//
///**
// * @author ：roc.zou
// * @date ：Created in 2022/4/26 21:07
// * @description ：
// */
//
////@Component
//public class BugComponent {
//
//    public List<Object> list = new ArrayList<>();
//
//    public static List<Object> objects = new ArrayList<>();
//
//    @PostConstruct
//    public void init() {
//
//        //死锁
//        Object o1 = new Object();
//        Object o2 = new Object();
//        new Thread(() -> {
//            synchronized (o1) {
//                try {
//                    Thread.sleep(2000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//                System.out.println("o1 locked");
//                synchronized (o2) {
//                    System.out.println("o2 locked");
//                }
//            }
//        }).start();
//
//        new Thread(() -> {
//            synchronized (o2) {
//                try {
//                    Thread.sleep(2000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//                System.out.println("o2 locked");
//                synchronized (o1) {
//                    System.out.println("o1 locked");
//                }
//            }
//        }).start();
//
//        //大对象
//        for (int i = 0; i < 300000; i++) {
//            list.add(new BigDecimal(i * 100000));
//        }
//
//        //死循环
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                while (true) {
//                }
//            }
//        }).start();
//
//
//        //内存泄漏
//        new Thread(() -> {
//            for (int i = 0 ; i <10000 ; i ++){
//                try {
//                    for (int j = 0 ; j < 1000 ; j ++) {
//                        StringBuffer stringBuffer = new StringBuffer("" + i + j);
//                        objects.add(stringBuffer);
//                    }
//                    Thread.sleep(1000);
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
//        }).start();
//
//    }
//}
